﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;

namespace QuiddichWPF.Config
{
    /// <summary>
    /// Classe de stockage des préférences utilisateur
    /// </summary>
    [Serializable]
    public class WindowConfig
    {
        /// <summary>
        /// Constructeur par défaut (nécessaire pour la sérialisation)
        /// </summary>
        public WindowConfig() { }

        /// <summary>
        /// Constructeur d'une nouvelle configuration de fenêtre
        /// </summary>
        /// <param name="windowName"> Le nom de la fenêtre </param>
        /// <param name="x"> La position 'Left' de la fenêtre sur l'écran </param>
        /// <param name="y"> La position 'Top' de la fenêtre sur l'écran </param>
        /// <param name="width"> La largeur de la fenêtre </param>
        /// <param name="height"> La hauteur de la fenêtre </param>
        /// <param name="state"> Etat de la fenêtre </param>
        public WindowConfig(string windowName, double x, double y, double width, double height, WindowState state)
        {
            // TODO: Complete member initialization
            this.Name = windowName;
            this.X = x;
            this.Y = y;
            this.Width = width;
            this.Height = height;
            this.State = state;
        }

        /// <summary>
        /// Nom de la fenêtre
        /// </summary>
        public String Name
        {
            get;
            set;
        }

        /// <summary>
        /// Position 'Top' de la fenêtre
        /// </summary>
        public Double X
        {
            get;
            set;
        }

        /// <summary>
        /// Position 'Left' de la fenêtre
        /// </summary>
        public Double Y
        {
            get;
            set;
        }

        /// <summary>
        /// Hauteur de la fenêtre
        /// </summary>
        public Double Height
        {
            get;
            set;
        }

        /// <summary>
        /// Largeur de la fenêtre
        /// </summary>
        public Double Width
        {
            get;
            set;
        }

        /// <summary>
        /// Etat de la fenêtre (Plein écran ou non)
        /// </summary>
        public WindowState State
        {
            get;
            set;
        }

        internal void Update(string windowName, double x, double y, double width, double height, WindowState state)
        {
            this.Name = windowName;
            this.X = x;
            this.Y = y;
            this.Width = width;
            this.Height = height;
            this.State = state;
        }
    }
}
